package com.xxx.car.service;

import com.github.pagehelper.PageInfo;
import com.xxx.car.entity.TbUser;
import com.xxx.car.entity.vo.request.ReqAdminLogin;
import com.xxx.car.entity.vo.request.ReqUserAdminQuery;
import com.xxx.car.entity.vo.request.ReqUserLogin;
import com.xxx.car.entity.vo.request.ReqUserRegister;
import com.xxx.common.base.vo.APIResponse;
import org.springframework.web.multipart.MultipartFile;


/**
 * Created by yxj on 17/6/14.
 */
public interface UserService {

	void sendValidCodetToPhone(String phone, int resend, int exp);

	APIResponse userRegister(ReqUserRegister reqUserRegister);

	APIResponse userLogin(ReqUserLogin reqUserLogin);

	APIResponse logout(String userCookieName);

	APIResponse uploadUserIcon(MultipartFile file, Integer userId);

	APIResponse modifyUserNickName(String nickName, Integer userId);

	APIResponse userDetail(Integer userId);

	APIResponse modifyUserPassword(String phone, String password) throws Exception;

	APIResponse passwordLost(ReqUserRegister reqUserRegister) throws Exception;

	APIResponse getShareCode(Integer userId);

	PageInfo<?> queryAppUserListByAdmin(ReqUserAdminQuery reqUserAdminQuery);

	Integer queryAppNormalUserCount();

	Integer queryAppFrozenUserCount();

	APIResponse modifyUser(Integer userId, String nickName, String password, Integer isDelete, Integer groupId);

	PageInfo<?> queryAdminUserListByAdmin(ReqUserAdminQuery reqUserAdminQuery);

	APIResponse addAdminUser(String loginName, String password, Integer groupId);

	TbUser queryUserByMobile(String mobile);

	APIResponse adminUserLogin(ReqAdminLogin reqAdminLogin);
}
